home *** CD-ROM | disk | FTP | other *** search
/ Total Network Tools 2002 / NextStepPublishing-TotalNetworkTools2002-Win95.iso / Archive / Misc Servers / Zope.exe / README.TXT < prev    next >
Encoding:
Text File  |  2000-01-04  |  8.6 KB  |  237 lines

  1. ZServer README
  2. --------------
  3.  
  4. What is ZServer?
  5.   
  6.   ZServer is an integration of the Zope application server and the
  7.   Medusa information server. See the ZServer architecture document for
  8.   more information::
  9.   
  10.     http://www.zope.org/Documentation/Reference/ZServer
  11.     
  12.   ZServer gives you HTTP, FTP, WebDAV, PCGI, and remote interactive
  13.   Python access. In later releases it will probably offer more
  14.   protocols such as FastCGI, etc.
  15.  
  16. What is Medusa?
  17.  
  18.   Medusa is a Python server framework with uses a single threaded
  19.   asynchronous sockets approach. For more information see::
  20.   
  21.     http://www.nightmare.com/medusa
  22.   
  23.   There's also an interesting Medusa tutorial at::
  24.   
  25.     http://www.nightmare.com:8080/nm/apps/medusa/docs/programming.html
  26.  
  27. ZServer HTTP support
  28.  
  29.   ZServer offers HTTP 1.1 publishing for Zope. It does not support
  30.   publishing files from the file system. You can specify the HTTP port
  31.   using the -w command line argument for the z2.py start script. You
  32.   can also specify CGI environment variables on the command line using
  33.   z2.py
  34.  
  35. ZServer FTP support
  36.  
  37.   What you can do with FTP
  38.  
  39.     FTP access to Zope allows you to FTP to the Zope object hierarchy
  40.     in order to perform managerial tasks. You can:
  41.  
  42.       * Navigate the object hierarchy with 'cd'
  43.     
  44.       * Replace the content of Documents, Images, and Files
  45.     
  46.       * Create Documents, Images, Files, Folders
  47.     
  48.       * Delete objects and Folders.
  49.  
  50.     So basically you can do more than is possible with HTTP PUT. Also,
  51.     unlike PUT, FTP gives you access to Document content. So when you
  52.     download a Document you are getting its content, not what it looks
  53.     like when it is rendered.
  54.  
  55.   Using FTP
  56.   
  57.     To FTP into Zope, ZServer must be configured to serve FTP. By
  58.     default ZServer serves FTP on port 9221. So to connect to Zope you
  59.     would issue a command like so::
  60.     
  61.       $ ftp localhost 9221
  62.       
  63.     When logging in to FTP, you have some choices. You can connect
  64.     anonymously by using a username of 'anonymous' and any password.
  65.     Or you can login as a Zope user. Since Zope users are defined at
  66.     different locations in the object hierarchy, authentication can be
  67.     problematic. There are two solutions:
  68.     
  69.       * login and then cd to the directory where you are defined.
  70.       
  71.       * login with a special name that indicates where you are
  72.       defined.
  73.       
  74.     The format of the special name is '<username>@<path>'. For
  75.     example::
  76.     
  77.       joe@Marketing/Projects
  78.  
  79.   FTP permissions
  80.  
  81.     FTP support is provided for Folders, Documents, Images, and Files.
  82.     You can control access to FTP via the new 'FTP access' permission.
  83.     This permission controls the ability to 'cd' to a Folder and to
  84.     download objects. Uploading and deleting and creating objects are
  85.     controlled by existing permissions.
  86.  
  87.   FTP limits
  88.   
  89.     You can set limits for the number of simultaneous FTP connections.
  90.     You can separately configure the number of anonymous and
  91.     authenticated connections. Right now this setting is set in
  92.     'ZServerFTP.py'. In the future, it may be more easy to configure.
  93.  
  94.   Properties and FTP: The next step
  95.  
  96.     The next phase of FTP support will allow you to edit properties of
  97.     all Zope objects. Probably properties will be exposed via special
  98.     files which will contain an XML representation of the object's
  99.     properties. You could then download the file, edit the XML and
  100.     upload it to change the object's properties.
  101.  
  102.     We do not currently have a target date for FTP property support.
  103.  
  104.   How does FTP work?
  105.  
  106.     The ZServer's FTP channel object translates FTP requests into
  107.     ZPublisher requests. The FTP channel then analyses the response
  108.     and formulates an appropriate FTP response. The FTP channel
  109.     stores some state such as the current working directory and the
  110.     username and password.
  111.  
  112.     On the Zope side of things, the 'lib/python/OFS/FTPInterface.py'
  113.     module defines the Zope FTP interface, for listing sub-items,
  114.     stating, and getting content. The interface is implemented in
  115.     'SimpleItem', and in other Zope classes. Programmers will not
  116.     need to implement the entire interface if they inherit from
  117.     'SimpleItem'. All the other FTP functions are handled by
  118.     existing methods like 'manage_delObjects', and 'PUT', etc.
  119.  
  120. ZServer PCGI support
  121.  
  122.   ZServer will service PCGI requests with both inet and unix domain
  123.   sockets. This means you can use ZServer instead of
  124.   'pcgi_publisher.py' as your long running PCGI server process. In the
  125.   future, PCGI may be able to activate ZServer.
  126.   
  127.   Using PCGI instead of HTTP allows you to forward requests from
  128.   another web server to ZServer. The CGI environment and HTTP headers
  129.   are controlled by the web server, so you don't need to worry about
  130.   managing the ZServer environment. However, this configuration will
  131.   impose a larger overhead than simply using the web server as an HTTP
  132.   proxy for ZServer.
  133.   
  134.   To use PCGI, configure your PCGI info files to communicate with
  135.   ZServer by setting the PCGI_PORT, PCGI_SOCKET_FILE, and PCGI_NAME.
  136.   The other PCGI settings are currently ignored by ZServer.
  137.  
  138.   ZServer's PCGI support will work with mod_pcgi.
  139.  
  140. ZServer monitor server
  141.  
  142.   ZServer now includes the Medusa monitor server. This basically gives
  143.   you a remote, secure Python prompt. You can interactively access Zope.
  144.   This is a very powerful, but dangerous tool. Be careful.
  145.   
  146.   To use the monitor server specify a monitor port number using the -m
  147.   option with the z2.py start script. The default port is 9999.
  148.   
  149.   To connect to the monitor server use the 'ZServer/medusa/monitor_client.py'
  150.   or 'ZServer/medusa/monitor_client_win32.py' script. For example::
  151.   
  152.     $ python1.5.2 ZServer/medusa/monitor_client.py localhost 9999
  153.     
  154.   You will then be asked to enter a password. This is the Zope super manager
  155.   password which is stored in the 'access' file.
  156.   
  157.   Then you will be greeted with a Python prompt. To access Zope import
  158.   the Zope module::
  159.   
  160.     >>> import Zope
  161.  
  162.   The Zope top level Zope object is available via the 'Zope.app' function::
  163.   
  164.     >>> a=Zope.app()
  165.  
  166.   From this object you can reach all other Zope objects as subobjects.
  167.   
  168.   Remember if you make changes to Zope objects and want those changes to be
  169.   saved you need to commmit the transaction::
  170.   
  171.     >>> get_transaction().commit()
  172.     
  173. ZServer WebDAV support
  174.  
  175.   WebDAV is a new protocol for managing web resources. WebDAV operates
  176.   over HTTP. Since WebDAV uses HTTP, ZServer doesn't really have to do
  177.   anything special, except stay out of Zope's way when handling WebDAV
  178.   requests.
  179.   
  180.   The only major WebDAV client at this time is Internet Explorer 5. It
  181.   works with Zope.
  182.  
  183. Differences between ZopeHTTPServer and ZServer
  184.  
  185.   ZopeHTTPServer is old and no longer being actively maintained.
  186.   
  187.   Both ZopeHTTPServer and ZServer are Python HTTP servers.
  188.   ZopeHTTPServer is built on the standard Python SimpleHTTPServer
  189.   framework. ZServer is built on Medusa.
  190.  
  191.   ZopeHTTPServer is very limited. It can only publish one module at a
  192.   time. It can only publish via HTTP. It has no support for thread
  193.   pools.
  194.   
  195.   ZServer on the other hand is more complex and supports publishing
  196.   multiple modules, thread pools, and it uses a new threaded
  197.   architecture for accessing ZPublisher.
  198.   
  199. Running ZServer as nobody
  200.  
  201.   Normally ZServer will run with the userid of the user who starts
  202.   it. However, if ZServer is started by root, it will attempt to
  203.   become nobody or any userid you specify with the -u argument to the
  204.   z2.py start script.
  205.  
  206.   ZServer is similar to ZopeHTTPServer in these respects.
  207.  
  208.   If you run Zope with different userids you must be aware of
  209.   permission issues. Zope must be able to read and write to the 'var'
  210.   directory. If you change the userid Zope is running under you will
  211.   probably need to change the permissions on the 'var' directory
  212.   and the files in it in order for Zope to run under a different
  213.   userid.
  214.  
  215. Support
  216.  
  217.   Questions and comments should go to 'support@digicool.com'.
  218.  
  219.   You can report bugs and check on the status of bugs using the Zope
  220.   bug collector::
  221.     
  222.     http://www.zope.org/Resources/Collector/
  223.  
  224. License
  225.  
  226.   ZServer is covered by the ZPL despite the fact that it comes with
  227.   much of the Medusa source code. The portions of Medusa that come
  228.   with ZServer are licensed under the ZPL.
  229.  
  230. Outstanding issues
  231.  
  232.   The FTP interface for Zope objects may be changed.
  233.   
  234.   HTTP 1.1 support is ZServer is incomplete, though it should work for
  235.   most HTTP 1.1 clients.
  236.   
  237.